package com.example.service.impl;

import com.example.entity.User;
import com.example.mapper.UserMapper;
import com.example.service.UserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

//UserServiceImpl
/**
 * 使用@Service注解，表示我这里是一个实现类
 * @Service注解是Spring框架中用于标识一个类为服务层组件（Service）的注解。
 * 在Spring应用程序中，通常将@Service注解用于标识服务层的类，表示该类提供业务逻辑处理，是应用程序的核心组件之一。
 */
@Service
//这里是实现业务逻辑里的方法的
public class UserServiceImpl implements UserService {
    /**
     * @Resource是Java EE提供的注解，用于进行依赖注入。在Spring框架中，@Resource注解可以用来标识需要注入
     * 的bean，类似于@Autowired注解，但在一些细节上有所不同。
     * @Resource注解的作用包括：
     * 标识需要注入的bean：通过@Resource注解标识一个字段或方法，告诉Spring容器需要将对应的bean注入到该字段或方法中。
     * 指定注入的名称：@Resource注解可以指定注入的bean的名称，通过name属性指定。如果不指定name属性，则默认按照名称进行匹配。
     * 支持按照名称和类型进行匹配：@Resource注解既支持按照名称匹配注入的bean，也支持按照类型匹配。如果指定了name属性，
     * 则按名称匹配；如果没有指定name属性，则先按类型匹配，再按名称匹配。
     */
    @Resource  //也可以使用@Autowired
    private UserMapper userMapper;

    @Override
    public List<User> getAllUserList() {
        return userMapper.getAllUser();
    }
}
